#ifndef TABLESYMBOLES_H_
#define TABLESYMBOLES_H_

#include "SymboleValue.h"
#include <vector>
#include <iostream>
using namespace std;

class TableSymboles
{

    public:
        TableSymboles(); // Construit une table vide de pointeurs sur des symboles valués
        SymboleValue * chercheAjoute(Symbole s);
        // si s est identique à un symbole valué déjà présent dans la table,
        // on renvoie un pointeur sur ce symbole valué
        // Sinon on insère un nouveau symbole valué correspondant à s
        // et on renvoie un pointeur sur le nouveau symbole valué inséré

        friend ostream & operator << (ostream & cout, TableSymboles ts);   // affiche ts sur cout

    private:
        vector<SymboleValue *> m_table; // la table des symboles valués, triée sur la chaine

};

#endif /* TABLESYMBOLES_H_ */
